Accept-Encoding header
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
* Some parts of this feature may have varying levels of support.
Der HTTP-Accept-Encoding
-Request- und Response-Header gibt die Inhaltskodierung (normalerweise ein Kompressionsalgorithmus) an, die der Absender verstehen kann. Bei Anfragen verwendet der Server die Inhaltsaushandlung, um einen der vom Client vorgeschlagenen Kodierungen auszuwählen, und teilt dem Client diese Auswahl mit dem Content-Encoding
-Response-Header mit. In Antworten gibt er an, welche Inhaltskodierungen der Server in Nachrichten an die angeforderte Ressource verstehen kann, sodass die Kodierung bei nachfolgenden Anfragen an die Ressource verwendet werden kann. Zum Beispiel ist Accept-Encoding
in einer 415 Unsupported Media Type
-Antwort enthalten, wenn eine Anfrage an eine Ressource (z.B. PUT
) eine nicht unterstützte Kodierung verwendet hat.
Selbst wenn sowohl der Client als auch der Server die gleichen Kompressionsalgorithmen unterstützen, kann der Server entscheiden, den Körper einer Antwort nicht zu komprimieren, wenn auch der identity
-Wert akzeptabel ist. Dies geschieht in zwei häufigen Fällen:
- Die Daten sind bereits komprimiert, was bedeutet, dass eine zweite Runde der Kompression die übertragene Datengröße nicht reduziert und in manchen Fällen tatsächlich die Größe des Inhalts erhöhen kann. Dies gilt für vorkomprimierte Bildformate (z.B. JPEG).
- Der Server ist überlastet und kann keine Rechenressourcen für die Komprimierung bereitstellen. Zum Beispiel empfiehlt Microsoft keine Komprimierung, wenn ein Server mehr als 80% seiner Rechenleistung nutzt.
Solange die Direktiven identity;q=0
oder *;q=0
den identity
-Wert, der keine Kodierung bedeutet, nicht ausdrücklich verbieten, darf der Server niemals einen 406 Not Acceptable
-Fehler zurückgeben.
Hinweis:
IANA pflegt eine Liste offizieller Inhaltskodierungen. Die Kodierungen bzip
und bzip2
sind nicht standardisiert, können jedoch in einigen Fällen verwendet werden, insbesondere für Legacy-Unterstützung.
Header-Typ | Request-Header, Response-Header |
---|---|
Verbotener Request-Header | Ja |
Syntax
Accept-Encoding: gzip
Accept-Encoding: compress
Accept-Encoding: deflate
Accept-Encoding: br
Accept-Encoding: zstd
Accept-Encoding: dcb
Accept-Encoding: dcz
Accept-Encoding: identity
Accept-Encoding: *
// Multiple algorithms, weighted with the quality value syntax:
Accept-Encoding: deflate, gzip;q=1.0, *;q=0.5
Direktiven
gzip
-
Ein Kompressionsformat, das das Lempel-Ziv-Coding (LZ77) mit einer 32-Bit-CRC verwendet.
compress
-
Ein Kompressionsformat, das den Lempel-Ziv-Welch (LZW)-Algorithmus verwendet.
deflate
-
Ein Kompressionsformat, das die zlib-Struktur mit dem deflate-Kompressionsalgorithmus verwendet.
br
-
Ein Kompressionsformat, das den Brotli-Algorithmus verwendet.
zstd
-
Ein Kompressionsformat, das den Zstandard-Algorithmus verwendet.
dcb
Experimentell-
Ein Format, das den Dictionary-Compressed Brotli-Algorithmus verwendet. Siehe Compression Dictionary Transport.
dcz
Experimentell-
Ein Format, das den Dictionary-Compressed Zstandard-Algorithmus verwendet. Siehe Compression Dictionary Transport.
identity
-
Gibt die Identitätsfunktion an (das heißt, ohne Veränderung oder Komprimierung). Dieser Wert wird immer als akzeptabel angesehen, selbst wenn er weggelassen wird.
*
(Wildcard)-
Passt zu jeder Inhaltskodierung, die nicht bereits im Header aufgelistet ist. Dies ist der Standardwert, wenn der Header nicht vorhanden ist. Diese Direktive schlägt nicht vor, dass ein bestimmter Algorithmus unterstützt wird, sondern zeigt an, dass keine Präferenz ausgedrückt wird.
;q=
(qvalues-Gewichtung)-
Jeder Wert wird in einer Reihenfolge von Präferenzen ausgedrückt, die einen relativen Qualitätswert namens weight verwendet.
Beispiele
Standardwerte von Accept-Encoding
Die Navigation im Browser hat typischerweise den folgenden Accept-Encoding
-Request-Header-Wert:
GET /en-US/ HTTP/2
Host: developer.mozilla.org
Accept-Encoding: gzip, deflate, br, zstd
Gewichtete Accept-Encoding-Werte
Der folgende Header zeigt Accept-Encoding
-Präferenzen unter Verwendung eines Qualitätswertes zwischen 0
(niedrigste Priorität) und 1
(höchste Priorität). Brotli-Kompression wird mit 1.0
gewichtet, was br
zur ersten Wahl des Clients macht, gefolgt von gzip
mit einer Priorität von 0.8
und dann jeder anderen Inhaltskodierung mit 0.1
:
Accept-Encoding: br;q=1.0, gzip;q=0.8, *;q=0.1
Spezifikationen
Specification |
---|
HTTP Semantics # field.accept-encoding |
Browser-Kompatibilität
Siehe auch
415 Unsupported Media Type
- HTTP-Inhaltsaushandlung
- Ein Header mit dem Ergebnis der Inhaltsaushandlung:
Content-Encoding
- Andere ähnliche Header:
TE
,Accept
,Accept-Language
- Brotli-Kompression
- GZip-Kompression
- Zstandard-Kompression
- Leitfaden zur Compression Dictionary Transport